package Vista;

import java.awt.CardLayout;
import java.awt.Dimension;
import java.awt.Insets;
import java.awt.event.ActionListener;

import javax.swing.JButton;
import javax.swing.JComponent;
import javax.swing.JPanel;
import javax.swing.JTable;

public class MainPage {
	
	private static final String Inicio = "Inicio";
	private static final String Notif = "Notificacion";
	private static final String Cargar = "CargarH";
	private static final String Agregar = "AgregarA";
	private static final String Consultar = "Consultar";
	
	private JPanel mainPanel = new JPanel();;
	private CardLayout cardlayout2 = new CardLayout();
	private JPanel innerPanel = new JPanel(cardlayout2);
	
	private Inicio InicioPanel = new Inicio();
	private Notificaciones NotifPanel = new Notificaciones();
	private CargarHorarios CargarPanel = new CargarHorarios();
	private AgregarAmigos AgregarPanel = new AgregarAmigos();
	private Consultar ConsultarPanel = new Consultar();

	private JButton jb_inicio, jb_notificaciones, jb_agregarA, jb_consultar, jb_cargarH, jb_salir;

	public MainPage() {
		initComponents();
	}

	private void initComponents() {

		innerPanel.add(InicioPanel.getMainComponent(), Inicio);
	    innerPanel.add(NotifPanel.getMainComponent(), Notif);
	    innerPanel.add(CargarPanel.getMainComponent(), Cargar);
	    innerPanel.add(AgregarPanel.getMainComponent(), Agregar);
	    innerPanel.add(ConsultarPanel.getMainComponent(), Consultar);
		innerPanel.setSize(530, 450);
		
		mainPanel.setLayout(null);
		mainPanel.add(getJButtonInicio());
		mainPanel.add(getJButtonNotificaciones());
		mainPanel.add(getJButtonAgregarAmigos());
		mainPanel.add(getJButtonConsultar());
		mainPanel.add(getJButtonCargarHorarios());
		mainPanel.add(getJButtonSalir());

		innerPanel.setPreferredSize(new Dimension(1000, 1000));
		innerPanel.setBounds(160,10,530, 450);
		mainPanel.add(innerPanel);

		mainPanel.setSize(700, 500);
	}
	
	protected void switchPanel(String key) {
		ConsultarPanel.switchPanel("Filtro");
		CargarPanel.switchPanel("Depto");
		ConsultarPanel.clearCheckBox();
		AgregarPanel.clearTextFields();
		cardlayout2.show(innerPanel, key);
	}
	
	private JButton getJButtonInicio() {
		if (jb_inicio == null) {
			jb_inicio = new JButton();
			jb_inicio.setText("Inicio");
			jb_inicio.setMargin(new Insets(1, 5, 1, 5));
			jb_inicio.setBounds(10,100,150, 60);
		}

		return jb_inicio;
	}
	
	protected JButton getJButtonNotificaciones() {
		if (jb_notificaciones == null) {
			jb_notificaciones = new JButton();
			jb_notificaciones.setText("Notificaciones");
			jb_notificaciones.setMargin(new Insets(1, 5, 1, 5));
			jb_notificaciones.setBounds(10,160,150, 60);
		}

		return jb_notificaciones;
	}
	
	private JButton getJButtonAgregarAmigos() {
		if (jb_agregarA == null) {
			jb_agregarA = new JButton();
			jb_agregarA.setText("Agregar Amigos");
			jb_agregarA.setMargin(new Insets(1, 5, 1, 5));
			jb_agregarA.setBounds(10,220,150, 60);
		}

		return jb_agregarA;
	}
	
	private JButton getJButtonCargarHorarios() {
		if (jb_cargarH == null) {
			jb_cargarH = new JButton();
			jb_cargarH.setText("Cargar Horarios");
			jb_cargarH.setMargin(new Insets(1, 5, 1, 5));
			jb_cargarH.setBounds(10,280,150, 60);
		}

		return jb_cargarH;
	}

	private JButton getJButtonConsultar() {
		if (jb_consultar == null) {
			jb_consultar = new JButton();
			jb_consultar.setText("Consultar");
			jb_consultar.setMargin(new Insets(1, 5, 1, 5));
			jb_consultar.setBounds(10,340,150, 60);
		}

		return jb_consultar;
	}
	
	private JButton getJButtonSalir() {
		if (jb_salir == null) {
			jb_salir = new JButton();
			jb_salir.setText("Salir");
			jb_salir.setMargin(new Insets(1, 5, 1, 5));
			jb_salir.setBounds(10,400,150, 60);
		}

		return jb_salir;
	}
	
	public void ExitActionListener(ActionListener listener) {
	    jb_salir.addActionListener(listener);
	}
	
	public void InicioActionListener(ActionListener listener) {
	    jb_inicio.addActionListener(listener);
	}
	
	public void NotifActionListener(ActionListener listener) {
	    jb_notificaciones.addActionListener(listener);
	}
	
	public void CargarHorariosActionListener(ActionListener listener) {
	    jb_cargarH.addActionListener(listener);
	}
	
	public void AgregarAmigosActionListener(ActionListener listener) {
	    jb_agregarA.addActionListener(listener);
	}
	
	public void ConsultarActionListener(ActionListener listener) {
	    jb_consultar.addActionListener(listener);
	}
	
	public JTable getTable() {
		return InicioPanel.getTable2();
	}
	
	public JComponent getMainComponent() {
	      return mainPanel;
	}

	public Notificaciones getNotif() {

		return  NotifPanel;
	}
	
	public Inicio getInicio() {

		return  InicioPanel;
	}
	
	public CargarHorarios getCargarHorarios() {
		return CargarPanel;
	}
	
	public Consultar getConsultar() {
		return ConsultarPanel;
	}
	
	
/*
public static void main(String[] args) {
    JFrame frame = new JFrame("NerdsMap App");
    frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    frame.getContentPane().add(new MainPage().getMainComponent());
    frame.setSize(700,500);
    frame.setLocationRelativeTo(null);
    frame.setVisible(true);
}
*/
}
